<?php

class Conexionesbd_Model_Conexionesbd extends Model_Cna {
	
	/**
	 * Devuelve un arreglo del listado de conexiones a las bd
	 * @return array
	 */
	public function getConexionesbd($datos = array()) {
		$conexionesbdTable = new Conexionesbd_Model_DbTable_Conexionesbd();
		return $conexionesbdTable->getConexionesbd($datos);
	}
	
	/**
	 * Almacena los datos de una conexion de bd en la base de datos
	 * @param array $datos Los datos de la conexion
	 */
	public function guardarConexionbd($datos) {
		$conexionesbdTable = new Conexionesbd_Model_DbTable_Conexionesbd();
		
		if(isset($datos["codconexion"]) && !empty($datos["codconexion"])) {
			$row = $conexionesbdTable->find($datos["codconexion"])->current();
			$row->setFromArray($datos)->save();
		} else {
			unset($datos["codconexion"]);
			return $conexionesbdTable->createRow($datos)->save();
		}
		
	}
	
	/**
	 * Carga los datos de una conexión de bd
	 * @param int $codconexion
	 * @return Array con los datos de la conexión de bd
	 */
	public function getConexionbd($codconexion){
		$conexionesbdTable = new Conexionesbd_Model_DbTable_Conexionesbd();
		return $conexionesbdTable->find($codconexion)->current()->toArray();
	}
	
	/**
	 * Eliminar conexión
	 * @param $codconexion
	 * @return int El número de filas eliminadas
	 */
	public function eliminarConexionbd($codconexion){
		$conexionesbdTable = new Conexionesbd_Model_DbTable_Conexionesbd();
		return $conexionesbdTable->find($codconexion)->current()->delete();
	}
	
	
	/**
	 * Consulta la tabla metodologías
	 * @return Array con los datos de las metodologías
	 */
	public function getArrayConexionesbd(){
		$datos_conexion =  $this->getConexionesbd();
		
	    $datos = array();
	    
	    $datos[9999] = "SIN CONEXION A BD";
	    foreach ($datos_conexion as $key => $value){
	        $datos[$value["codconexion"]] = $value["nombreconexion"];
	    }
	    return $datos;
	}
	
}
